home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
oper_sys
/
presto
/
prest_04.lha
/
src
/
callstate.h
< prev
next >
Wrap
C/C++ Source or Header
|
1989-06-06
|
1KB
|
38 lines
#define CS_MAXARGS 8
class Callstate {
PFany cs_func; // what we should call
int cs_argc; // number of longwords to call
Objany cs_obj; // "this" arg (vax callg needs it here)
int cs_argvs[CS_MAXARGS]; // longwords to push on the call
int *cs_argvd; // if we need more than
// MAXARGS, shmalloc here.
int cs_len; // how much space available (in words)
public:
Callstate()
{;} // satisfy compiler
~Callstate();
inline void init();
void reinit() // do nothing
{;}
void set(PFany f, int argc, int* argv);
void call(int *sp = 0, Objany o = 0);
void print(ostream& = cout);
friend ostream& operator<<(ostream&, Callstate&);
};
//
// We don't want to have a constructor here, cuz it will get automatically
// called by Thread constructor, even when we are reusing old ones.
// The whole set "secret" mechanisms that initialize constructors are really
// a pain.
//
inline void
Callstate::init()
{
cs_len = CS_MAXARGS; // storage optimized for this
cs_argvd = 0;
}